import { defineStore } from 'pinia'
import { ITheme } from '@/store/theme/interface'
import cache from '@/utils/cache'
/* 本地数据模拟 */
const dictTypeAllMock = {
	data: [
		{
			dictType: 'post_status',
			dataList: [
				{
					dictLabel: '正常',
					dictValue: '1',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '停用',
					dictValue: '0',
					labelClass: 'danger',
					pid: null
				}
			]
		},
		{
			dictType: 'user_gender',
			dataList: [
				{
					dictLabel: '男',
					dictValue: '0',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '女',
					dictValue: '1',
					labelClass: 'success',
					pid: null
				},
				{
					dictLabel: '未知',
					dictValue: '2',
					labelClass: 'warning',
					pid: null
				}
			]
		},
		{
			dictType: 'user_status',
			dataList: [
				{
					dictLabel: '正常',
					dictValue: '1',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '停用',
					dictValue: '0',
					labelClass: 'danger',
					pid: null
				}
			]
		},
		{
			dictType: 'role_data_scope',
			dataList: [
				{
					dictLabel: '自定义数据',
					dictValue: '4',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '本人数据',
					dictValue: '3',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '本机构数据',
					dictValue: '2',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '本机构及子机构数据',
					dictValue: '1',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '全部数据',
					dictValue: '0',
					labelClass: '',
					pid: null
				}
			]
		},
		{
			dictType: 'enable_disable',
			dataList: [
				{
					dictLabel: '启用',
					dictValue: '1',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '禁用',
					dictValue: '0',
					labelClass: 'danger',
					pid: null
				}
			]
		},
		{
			dictType: 'success_fail',
			dataList: [
				{
					dictLabel: '成功',
					dictValue: '1',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '失败',
					dictValue: '0',
					labelClass: 'danger',
					pid: null
				}
			]
		},
		{
			dictType: 'login_operation',
			dataList: [
				{
					dictLabel: '登录成功',
					dictValue: '0',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '退出成功',
					dictValue: '1',
					labelClass: 'warning',
					pid: null
				},
				{
					dictLabel: '验证码错误',
					dictValue: '2',
					labelClass: 'danger',
					pid: null
				},
				{
					dictLabel: '账号密码错误',
					dictValue: '3',
					labelClass: 'danger',
					pid: null
				}
			]
		},
		{
			dictType: 'params_type',
			dataList: [
				{
					dictLabel: '是',
					dictValue: '1',
					labelClass: 'danger',
					pid: null
				},
				{
					dictLabel: '否',
					dictValue: '0',
					labelClass: 'primary',
					pid: null
				}
			]
		},
		{
			dictType: 'user_super_admin',
			dataList: [
				{
					dictLabel: '否',
					dictValue: '0',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '是',
					dictValue: '1',
					labelClass: 'danger',
					pid: null
				}
			]
		},
		{
			dictType: 'log_operate_type',
			dataList: [
				{
					dictLabel: '查询',
					dictValue: '1',
					labelClass: 'primary',
					pid: null
				},
				{
					dictLabel: '新增',
					dictValue: '2',
					labelClass: 'success',
					pid: null
				},
				{
					dictLabel: '修改',
					dictValue: '3',
					labelClass: 'warning',
					pid: null
				},
				{
					dictLabel: '删除',
					dictValue: '4',
					labelClass: 'danger',
					pid: null
				},
				{
					dictLabel: '导出',
					dictValue: '5',
					labelClass: 'info',
					pid: null
				},
				{
					dictLabel: '导入',
					dictValue: '6',
					labelClass: 'info',
					pid: null
				},
				{
					dictLabel: '其它',
					dictValue: '0',
					labelClass: 'info',
					pid: null
				}
			]
		},
		{
			dictType: 'sms_platform',
			dataList: [
				{
					dictLabel: '阿里云',
					dictValue: '0',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '腾讯云',
					dictValue: '1',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '七牛云',
					dictValue: '2',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '华为云',
					dictValue: '3',
					labelClass: '',
					pid: null
				}
			]
		},
		{
			dictType: 'mail_platform',
			dataList: [
				{
					dictLabel: '本地',
					dictValue: '-1',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '阿里云',
					dictValue: '0',
					labelClass: '',
					pid: null
				}
			]
		},
		{
			dictType: 'schedule_group',
			dataList: [
				{
					dictLabel: '默认',
					dictValue: 'default',
					labelClass: '',
					pid: null
				},
				{
					dictLabel: '系统',
					dictValue: 'system',
					labelClass: '',
					pid: null
				}
			]
		},
		{
			dictType: 'schedule_status',
			dataList: [
				{
					dictLabel: '暂停',
					dictValue: '0',
					labelClass: 'danger',
					pid: null
				},
				{
					dictLabel: '正常',
					dictValue: '1',
					labelClass: 'primary',
					pid: null
				}
			]
		}
	]
}
export const useAppStore = defineStore('appStore', {
	state: () => ({
		// sidebar 是否展开
		sidebarOpened: cache.getSidebarOpened(),
		// 国际化
		language: cache.getLanguage(),
		// 组件大小
		componentSize: cache.getComponentSize(),
		// 字典列表
		dictList: [] as { dictType: string; dataList: { dictLabel: string; dictValue: string; labelClass: string; pid: null }[] }[],
		// 主题
		theme: cache.getTheme()
	}),
	actions: {
		setSidebarOpened() {
			this.sidebarOpened = !this.sidebarOpened
			cache.setSidebarOpened(this.sidebarOpened)
		},
		setSidebarStatus(status: boolean) {
			this.sidebarOpened = status
			cache.setSidebarOpened(this.sidebarOpened)
		},
		setLanguage(locale: string) {
			this.language = locale
			cache.setLanguage(locale)
		},
		setComponentSize(size: string) {
			this.componentSize = size
			cache.setComponentSize(size)
		},
		async getDictListAction() {
			// const { data } = await useDictTypeAllApi()
			const { data } = dictTypeAllMock
			this.dictList = data || []
		},
		setTheme(theme: ITheme) {
			this.theme = theme
			cache.setTheme(theme)
		}
	}
})
